package com.vue.designPatterns.template;

/**
 * Created by Administrator on 2019/3/15.
 * 模板方法模式,有个抽象方法让子类实现,不同的实现的到不同的效果
 * 调用的时候都是调用父类的相同的方法(所以叫模板方法)
 *
 */
public abstract class AbstractCalculator {

    public final int calculate(String exp,String opt) {
        int[] array = split(exp, opt);
        return calculate(array[0],array[1]);
    }

    abstract public int calculate(int num1,int num2);

    public int[] split(String exp,String opt) {
        String[] array = exp.split(opt);
        int[] arrayInt = new int[2];
        arrayInt[0] = Integer.parseInt(array[0]);
        arrayInt[1] = Integer.parseInt(array[1]);

        return arrayInt;
    }
}
